package com.clei.mapper;

import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * mybatis mapper
 *
 * @author KIyA
 */
public interface CommonMapper {

    /**
     * 获取表列信息
     *
     * @param database 数据库名
     * @param table    表名
     * @return 列信息
     */
    List<Map<String, String>> selectMysqlColumn(@Param("database") String database,
                                                @Param("table") String table);

    /**
     * 插入任意数据到任意表
     *
     * @param sql 要执行的sql
     * @return 影响数据条数
     */
    List<String> selectString(@Param("sql") String sql);

    /**
     * 插入任意数据到任意表
     *
     * @param sql 要执行的sql
     * @return 影响数据条数
     */
    List<Map<String, Object>> selectMap(@Param("sql") String sql);

    /**
     * 清空表数据
     *
     * @param tableName 表名
     */
    void truncateTable(@Param("tableName") String tableName);

    /**
     * 插入任意数据到任意表
     *
     * @param sql 要执行的sql
     * @return 影响数据条数
     */
    int insertAny(@Param("sql") String sql);
}
